// HTML Element method names that might conflict with component methods
// Based on MDN documentation for HTMLElement, Element, and Node interfaces
export const HTML_ELEMENT_METHODS = new Set([
  // HTMLElement methods
  'attachInternals',
  'blur',
  'click',
  'focus',
  'hidePopover',
  'showPopover',
  'togglePopover',

  // Element methods
  'after',
  'animate',
  'append',
  'attachShadow',
  'before',
  'checkVisibility',
  'closest',
  'computedStyleMap',
  'getAnimations',
  'getAttribute',
  'getAttributeNames',
  'getAttributeNode',
  'getAttributeNodeNS',
  'getAttributeNS',
  'getBoundingClientRect',
  'getClientRects',
  'getElementsByClassName',
  'getElementsByTagName',
  'getElementsByTagNameNS',
  'getHTML',
  'hasAttribute',
  'hasAttributeNS',
  'hasAttributes',
  'hasPointerCapture',
  'insertAdjacentElement',
  'insertAdjacentHTML',
  'insertAdjacentText',
  'matches',
  'moveBefore',
  'prepend',
  'querySelector',
  'querySelectorAll',
  'releasePointerCapture',
  'remove',
  'removeAttribute',
  'removeAttributeNode',
  'removeAttributeNS',
  'replaceChildren',
  'replaceWith',
  'requestFullscreen',
  'requestPointerLock',
  'scroll',
  'scrollBy',
  'scrollIntoView',
  'scrollIntoViewIfNeeded',
  'scrollTo',
  'setAttribute',
  'setAttributeNode',
  'setAttributeNodeNS',
  'setAttributeNS',
  'setCapture',
  'setHTML',
  'setHTMLUnsafe',
  'setPointerCapture',
  'toggleAttribute',

  // Node methods
  'appendChild',
  'cloneNode',
  'compareDocumentPosition',
  'contains',
  'getRootNode',
  'hasChildNodes',
  'insertBefore',
  'isDefaultNamespace',
  'isEqualNode',
  'isSameNode',
  'lookupNamespaceURI',
  'lookupPrefix',
  'normalize',
  'removeChild',
  'replaceChild',

  // EventTarget methods
  'addEventListener',
  'dispatchEvent',
  'removeEventListener',
]);
